import Vue from 'vue'
import Vuex from 'vuex'
import { getToken,removeToken } from '@/utils/auth.js'
// 导入一个登录的api
import $api from '@/api/login'
Vue.use(Vuex)
export default new Vuex.Store({
  state: {
    user_info:{},// 用户信息
    web_info:{},// 网站信息
    steam_handle:'',// steam登录信息
    login_top:false,// 显示登录
    login_is_show:true,// 登录i提示
    is_show_nav_pc:false,// pc隐藏
    is_show_nav_phone:false,//手机隐藏
    mobile:undefined,// 手机号
    game_list_pk:[],// pk的列表
    lang:'zh-CN',//切换语言
    dian:false,// 福利箱子显示的小点
    reminder:true,// 首页活动弹窗
    TaskinIsShow:false,// header的福利中心
    includes: [],

  },
  mutations: {
    TASKINISSHOW(state,Bon){
      state.TaskinIsShow = Bon
    },

    REMINDER(state,Bon){
      state.reminder = Bon
    },
    DIAN(state,data){
      state.dian = data
    },
    // 保存对战列表
    GAME_LIST_PK(state,data){
      state.game_list_pk.push(data)
    },
    // 删除对战列表
    GAME_LIST_PK_DEL(state,data){
      let index = state.game_list_pk.findIndex(item =>{
        return item.id == data.id
      })
      state.game_list_pk.splice(index,1)
    },
    // 获取用户信息
    USER_INFO(state,data){
      state.user_info = data
      state.mobile = data.mobile
    },
    // 获取网站信息
    WEB_INFO(state,data){
      state.web_info = data
    },
    // steam的登录
    STEAM_HANDLE(state,data){
      state.steam_handle = data
    },
    // 显示弹窗
    LOGIN_TOP(state,data){
      state.login_top = data
    },
    // 是否显示右上角的登录
    LOGIN_IS_SHOW(state,data){
      state.login_is_show = data
    },
    // 点击的时候需要隐藏这个，用户下的导航
    ISSHOWNAVPC(state,data){
      state.is_show_nav_pc = data
    },
    // 手机端导航
    ISSHOWNAVPHONE(state,data){
      state.is_show_nav_phone = data
    },
    // 切换语言
    LANG(state,data){
      state.lang = data
    },
    CHANGE_INCLUDES(state, data){
      state.includes = data
      console.log('includes', data)
    }
  },
  actions: {
    gameListPK(context,payload){
      context.commit('GAME_LIST_PK',payload)
    },
    // 退出登录的时候走着
    removeInfo(context){
      context.commit('USER_INFO',{})
      removeToken()
    },
    // 刷新和金额改变以及很多实时改变用户信息的额时候走着
    async userInfo (context) {
      // 获取token
      let Token = getToken()
      if(Token){
        // 用户登录的是偶获取用户信息
        let data = await $api.getUsetInof()
        if(data === undefined) {
          context.commit('USER_INFO',{})
          removeToken()
        }else {
          context.commit('USER_INFO',data.data)
        }
      }else {
        context.commit('USER_INFO',{})
        removeToken()
      }
      // 获取站点信息
      let {data:webInfo} = await $api.getWebInfo()
      context.commit('WEB_INFO',webInfo)
    }
  },
  modules: {

  }
})
